[INFO] cloning repository https://github.com/Shnatsel/wondermagick
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Shnatsel/wondermagick" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShnatsel%2Fwondermagick", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShnatsel%2Fwondermagick'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dfdf8a91b58269a5813a915e976a960d6815e0c5
[INFO] fixing Shnatsel/wondermagick against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShnatsel%2Fwondermagick" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Shnatsel/wondermagick
[INFO] finished tweaking git repo https://github.com/Shnatsel/wondermagick
[INFO] tweaked toml for git repo https://github.com/Shnatsel/wondermagick written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Shnatsel/wondermagick on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Shnatsel/wondermagick already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4
[INFO] running `Command { std: "docker" "start" "d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]     Checking no_std_io2 v0.9.3
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking imgref v1.12.1
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking avif-serialize v0.8.8
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking rand_core v0.10.1
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking jpeg-encoder v0.7.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling current_platform v0.2.0
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking pcx v0.2.5
[INFO] [stderr]     Checking whereat v0.1.5
[INFO] [stderr]     Checking enough v0.4.4
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking fearless_simd v0.4.0
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking pic-scale-safe v0.1.10
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.47
[INFO] [stderr]    Compiling libwebp-sys v0.14.4
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking quickcheck v1.1.0
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling structmeta-derive v0.2.0
[INFO] [stderr]    Compiling quickcheck_macros v1.2.0
[INFO] [stderr]     Checking webpx v0.3.3
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking mimalloc v0.1.50
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]    Compiling structmeta v0.2.0
[INFO] [stderr]    Compiling derive-quickcheck-arbitrary v0.1.3
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking image v0.25.9 (https://github.com/image-rs/image.git?rev=dbb885ce3641b714a3d0284a411f10a6fdcebaeb#dbb885ce)
[INFO] [stderr]     Checking image-extras v0.1.1
[INFO] [stderr]     Checking hayro-jpeg2000 v0.3.5
[INFO] [stderr]     Checking wondermagick v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/utils/arbitrary.rs (12 fixes)
[INFO] [stderr]        Fixed src/error.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |               Err(error) => Err(wm_err!(
[INFO] [stdout]     |  _______________________________-
[INFO] [stdout] 181 | |                 "unable to open image '{}': {error}",
[INFO] [stdout] 182 | |                 input.to_string_lossy()
[INFO] [stdout] 183 | |             )),
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:228:34
[INFO] [stdout]     |
[INFO] [stdout] 228 |                       Some(msg) => wm_err!("invalid resize geometry: {msg}"),
[INFO] [stdout]     |                                    ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:229:29
[INFO] [stdout]     |
[INFO] [stdout] 229 |                       None => wm_err!("invalid resize geometry"),
[INFO] [stdout]     |                               ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:218:24
[INFO] [stdout]     |
[INFO] [stdout] 218 |               return Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()));
[INFO] [stdout]     |                          --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |               Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()))
[INFO] [stdout]     |                   --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:235:31
[INFO] [stdout]     |
[INFO] [stdout] 235 |                   Err(_) => Err(wm_err!("invalid crop geometry: {s:?}")),
[INFO] [stdout]     |                                 --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/args.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |               _ => Err(wm_err!("invalid argument sign `{}'", value)),
[INFO] [stdout]    |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:215:30
[INFO] [stdout]     |
[INFO] [stdout] 215 |                   .map_err(|_| wm_err!("unrecognized option `{}'", string_arg))?;
[INFO] [stdout]     |                                ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |           return Err(wm_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 198 | |             "missing output filename `{}'",
[INFO] [stdout] 199 | |             output_filename.to_string_lossy()
[INFO] [stdout] 200 | |         ));
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:188:20
[INFO] [stdout]     |
[INFO] [stdout] 188 |           return Err(wm_err!("No command-line arguments provided"));
[INFO] [stdout]     |                      --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:241:22
[INFO] [stdout]     |
[INFO] [stdout] 241 |           .map_err(|s| wm_err!("unrecognized option `{}'", s.to_string_lossy()))?;
[INFO] [stdout]     |                        -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |       let pixels = wm_try!(DynamicImage::from_decoder(decoder));
[INFO] [stdout]    |                    -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let mut decoder = wm_try!(reader.into_decoder());
[INFO] [stdout]    |                         ------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 |               reader = wm_try!(reader.with_guessed_format());
[INFO] [stdout]    |                        ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]    |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |               wm_try!(std::io::copy(&mut std::io::stdin(), &mut file));
[INFO] [stdout]    |               -------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |               let mut file = wm_try!(tempfile::tempfile());
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:79:30
[INFO] [stdout]    |
[INFO] [stdout] 79 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |               wm_try!(writer.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |               wm_try!(stdout.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |               wm_try!(std::io::copy(&mut file, &mut stdout));
[INFO] [stdout]     |               ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]     |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |               let mut file = wm_try!(writer.into_inner());
[INFO] [stdout]     |                              ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 |           _ => wm_try!(optimize_pixel_format(&image.pixels).write_to(&mut writer, format)),
[INFO] [stdout]     |                --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |           Location::Stdio => wm_try!(tempfile::tempfile()),
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |       Err(wm_err!(
[INFO] [stdout]     |  _________-
[INFO] [stdout] 151 | |         "no encode delegate for this image format `{}'",
[INFO] [stdout] 152 | |         extension.to_ascii_uppercase().display()
[INFO] [stdout] 153 | |     ))
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/avif.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/gif.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/jpeg.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 |               return Err(wm_err!("PNG quality cannot be negative"));
[INFO] [stdout]    |                          ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/tiff.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 |       .map_err(|e| wm_err!("WebP encoding failed: {e:?}"))?;
[INFO] [stdout]    |                    -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |       wm_try!(writer.write_all(&webp));
[INFO] [stdout]    |       -------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 43 | |                 "not enough channels in colorspace {:?} to combine {} images",
[INFO] [stdout] 44 | |                 color,
[INFO] [stdout] 45 | |                 images.len()
[INFO] [stdout] 46 | |             ));
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |           return Err(wm_err!("no images found for operation combine"));
[INFO] [stdout]    |                      ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 72 | |                 "unsupported color type {:?} for operation combine",
[INFO] [stdout] 73 | |                 color
[INFO] [stdout] 74 | |             ))
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/grayscale.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |           _ => Err(wm_err!(
[INFO] [stdout]    |  __________________-
[INFO] [stdout] 15 | |             "grayscale method not implemented. Rec709Luma is the only supported method."
[INFO] [stdout] 16 | |         )),
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:49:31
[INFO] [stdout]    |
[INFO] [stdout] 49 |               Token::Newline => wm_try!(write!(writer, "\n")),
[INFO] [stdout]    |                                 ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 |               Token::Literal(text) => wm_try!(write!(writer, "{}", text)),
[INFO] [stdout]    |                                       ----------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                   wm_try!(write!(writer, "{}", image.pixels.width()));
[INFO] [stdout]    |                   --------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |                   wm_try!(write!(writer, "{}", image.pixels.height()));
[INFO] [stdout]    |                   ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |                   wm_try!(write!(writer, "+{}", 0));
[INFO] [stdout]    |                   --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |                       wm_try!(write!(writer, "{}", format));
[INFO] [stdout]    |                       ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 | /                 wm_try!(write!(
[INFO] [stdout] 71 | |                     writer,
[INFO] [stdout] 72 | |                     "{}x{}",
[INFO] [stdout] 73 | |                     image.pixels.width(),
[INFO] [stdout] 74 | |                     image.pixels.height()
[INFO] [stdout] 75 | |                 ));
[INFO] [stdout]    | |__________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |                   wm_try!(write!(writer, "{}+0+0", dimensions));
[INFO] [stdout]    |                   --------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                   wm_try!(write!(writer, "{}", bits_per_channel));
[INFO] [stdout]    |                   ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                       wm_try!(write!(writer, "{}", colorspace));
[INFO] [stdout]    |                       ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/identify.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |           wm_try!(writer.write_all(filename.as_bytes()));
[INFO] [stdout]     |           ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |       wm_try!(resize_impl(image, width, height, Some(Filter::Point)));
[INFO] [stdout]    |       --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |               let resized = wm_try!(resize_plane8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]    |                             ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:97:27
[INFO] [stdout]     |
[INFO] [stdout]  97 |               let resized = wm_try!(resize_plane8_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout]  98 | |                 src.as_raw(),
[INFO] [stdout]  99 | |                 src_size,
[INFO] [stdout] 100 | |                 dst_size,
[INFO] [stdout] 101 | |                 alg
[INFO] [stdout] 102 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:106:27
[INFO] [stdout]     |
[INFO] [stdout] 106 |               let resized = wm_try!(resize_rgb8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |               let resized = wm_try!(resize_rgba8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:114:27
[INFO] [stdout]     |
[INFO] [stdout] 114 |               let resized = wm_try!(resize_plane16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:118:27
[INFO] [stdout]     |
[INFO] [stdout] 118 |               let resized = wm_try!(resize_plane16_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 119 | |                 src.as_raw(),
[INFO] [stdout] 120 | |                 src_size,
[INFO] [stdout] 121 | |                 dst_size,
[INFO] [stdout] 122 | |                 16,
[INFO] [stdout] 123 | |                 alg
[INFO] [stdout] 124 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |               let resized = wm_try!(resize_rgb16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |               let resized = wm_try!(resize_rgba16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:136:27
[INFO] [stdout]     |
[INFO] [stdout] 136 |               let resized = wm_try!(resize_rgb_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:140:27
[INFO] [stdout]     |
[INFO] [stdout] 140 |               let resized = wm_try!(resize_rgba_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:97:17
[INFO] [stdout]     |
[INFO] [stdout]  97 | /                 wm_err!(
[INFO] [stdout]  98 | |                     "{}",
[INFO] [stdout]  99 | |                     arg_err.display_with_arg(arg_string, value.unwrap_or_default())
[INFO] [stdout] 100 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/plan.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |               return Err(wm_err!("argument requires a value: {arg_string}"));
[INFO] [stdout]    |                          -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                       let mut image = wm_try!(decode(&file_plan.location, file_plan.format));
[INFO] [stdout]     |                                       ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:313:24
[INFO] [stdout]     |
[INFO] [stdout] 313 |               return Err(wm_err!("no images defined")); // mimics imagemagick
[INFO] [stdout]     |                          ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |               Err(error) => Err(wm_err!(
[INFO] [stdout]     |  _______________________________-
[INFO] [stdout] 181 | |                 "unable to open image '{}': {error}",
[INFO] [stdout] 182 | |                 input.to_string_lossy()
[INFO] [stdout] 183 | |             )),
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:228:34
[INFO] [stdout]     |
[INFO] [stdout] 228 |                       Some(msg) => wm_err!("invalid resize geometry: {msg}"),
[INFO] [stdout]     |                                    ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:229:29
[INFO] [stdout]     |
[INFO] [stdout] 229 |                       None => wm_err!("invalid resize geometry"),
[INFO] [stdout]     |                               ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:218:24
[INFO] [stdout]     |
[INFO] [stdout] 218 |               return Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()));
[INFO] [stdout]     |                          --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |               Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()))
[INFO] [stdout]     |                   --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:235:31
[INFO] [stdout]     |
[INFO] [stdout] 235 |                   Err(_) => Err(wm_err!("invalid crop geometry: {s:?}")),
[INFO] [stdout]     |                                 --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/args.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |               _ => Err(wm_err!("invalid argument sign `{}'", value)),
[INFO] [stdout]    |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:215:30
[INFO] [stdout]     |
[INFO] [stdout] 215 |                   .map_err(|_| wm_err!("unrecognized option `{}'", string_arg))?;
[INFO] [stdout]     |                                ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |           return Err(wm_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 198 | |             "missing output filename `{}'",
[INFO] [stdout] 199 | |             output_filename.to_string_lossy()
[INFO] [stdout] 200 | |         ));
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:188:20
[INFO] [stdout]     |
[INFO] [stdout] 188 |           return Err(wm_err!("No command-line arguments provided"));
[INFO] [stdout]     |                      --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:241:22
[INFO] [stdout]     |
[INFO] [stdout] 241 |           .map_err(|s| wm_err!("unrecognized option `{}'", s.to_string_lossy()))?;
[INFO] [stdout]     |                        -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |       let pixels = wm_try!(DynamicImage::from_decoder(decoder));
[INFO] [stdout]    |                    -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let mut decoder = wm_try!(reader.into_decoder());
[INFO] [stdout]    |                         ------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 |               reader = wm_try!(reader.with_guessed_format());
[INFO] [stdout]    |                        ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]    |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |               wm_try!(std::io::copy(&mut std::io::stdin(), &mut file));
[INFO] [stdout]    |               -------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |               let mut file = wm_try!(tempfile::tempfile());
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:79:30
[INFO] [stdout]    |
[INFO] [stdout] 79 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |               wm_try!(writer.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |               wm_try!(stdout.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |               wm_try!(std::io::copy(&mut file, &mut stdout));
[INFO] [stdout]     |               ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]     |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |               let mut file = wm_try!(writer.into_inner());
[INFO] [stdout]     |                              ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 |           _ => wm_try!(optimize_pixel_format(&image.pixels).write_to(&mut writer, format)),
[INFO] [stdout]     |                --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |           Location::Stdio => wm_try!(tempfile::tempfile()),
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |       Err(wm_err!(
[INFO] [stdout]     |  _________-
[INFO] [stdout] 151 | |         "no encode delegate for this image format `{}'",
[INFO] [stdout] 152 | |         extension.to_ascii_uppercase().display()
[INFO] [stdout] 153 | |     ))
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/avif.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/gif.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/jpeg.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 |               return Err(wm_err!("PNG quality cannot be negative"));
[INFO] [stdout]    |                          ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/tiff.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 |       .map_err(|e| wm_err!("WebP encoding failed: {e:?}"))?;
[INFO] [stdout]    |                    -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |       wm_try!(writer.write_all(&webp));
[INFO] [stdout]    |       -------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 43 | |                 "not enough channels in colorspace {:?} to combine {} images",
[INFO] [stdout] 44 | |                 color,
[INFO] [stdout] 45 | |                 images.len()
[INFO] [stdout] 46 | |             ));
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |           return Err(wm_err!("no images found for operation combine"));
[INFO] [stdout]    |                      ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 72 | |                 "unsupported color type {:?} for operation combine",
[INFO] [stdout] 73 | |                 color
[INFO] [stdout] 74 | |             ))
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/grayscale.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |           _ => Err(wm_err!(
[INFO] [stdout]    |  __________________-
[INFO] [stdout] 15 | |             "grayscale method not implemented. Rec709Luma is the only supported method."
[INFO] [stdout] 16 | |         )),
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:49:31
[INFO] [stdout]    |
[INFO] [stdout] 49 |               Token::Newline => wm_try!(write!(writer, "\n")),
[INFO] [stdout]    |                                 ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 |               Token::Literal(text) => wm_try!(write!(writer, "{}", text)),
[INFO] [stdout]    |                                       ----------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                   wm_try!(write!(writer, "{}", image.pixels.width()));
[INFO] [stdout]    |                   --------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |                   wm_try!(write!(writer, "{}", image.pixels.height()));
[INFO] [stdout]    |                   ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |                   wm_try!(write!(writer, "+{}", 0));
[INFO] [stdout]    |                   --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |                       wm_try!(write!(writer, "{}", format));
[INFO] [stdout]    |                       ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 | /                 wm_try!(write!(
[INFO] [stdout] 71 | |                     writer,
[INFO] [stdout] 72 | |                     "{}x{}",
[INFO] [stdout] 73 | |                     image.pixels.width(),
[INFO] [stdout] 74 | |                     image.pixels.height()
[INFO] [stdout] 75 | |                 ));
[INFO] [stdout]    | |__________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |                   wm_try!(write!(writer, "{}+0+0", dimensions));
[INFO] [stdout]    |                   --------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                   wm_try!(write!(writer, "{}", bits_per_channel));
[INFO] [stdout]    |                   ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                       wm_try!(write!(writer, "{}", colorspace));
[INFO] [stdout]    |                       ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/identify.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |           wm_try!(writer.write_all(filename.as_bytes()));
[INFO] [stdout]     |           ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |       wm_try!(resize_impl(image, width, height, Some(Filter::Point)));
[INFO] [stdout]    |       --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |               let resized = wm_try!(resize_plane8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]    |                             ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:97:27
[INFO] [stdout]     |
[INFO] [stdout]  97 |               let resized = wm_try!(resize_plane8_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout]  98 | |                 src.as_raw(),
[INFO] [stdout]  99 | |                 src_size,
[INFO] [stdout] 100 | |                 dst_size,
[INFO] [stdout] 101 | |                 alg
[INFO] [stdout] 102 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:106:27
[INFO] [stdout]     |
[INFO] [stdout] 106 |               let resized = wm_try!(resize_rgb8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |               let resized = wm_try!(resize_rgba8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:114:27
[INFO] [stdout]     |
[INFO] [stdout] 114 |               let resized = wm_try!(resize_plane16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:118:27
[INFO] [stdout]     |
[INFO] [stdout] 118 |               let resized = wm_try!(resize_plane16_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 119 | |                 src.as_raw(),
[INFO] [stdout] 120 | |                 src_size,
[INFO] [stdout] 121 | |                 dst_size,
[INFO] [stdout] 122 | |                 16,
[INFO] [stdout] 123 | |                 alg
[INFO] [stdout] 124 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |               let resized = wm_try!(resize_rgb16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |               let resized = wm_try!(resize_rgba16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:136:27
[INFO] [stdout]     |
[INFO] [stdout] 136 |               let resized = wm_try!(resize_rgb_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:140:27
[INFO] [stdout]     |
[INFO] [stdout] 140 |               let resized = wm_try!(resize_rgba_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:97:17
[INFO] [stdout]     |
[INFO] [stdout]  97 | /                 wm_err!(
[INFO] [stdout]  98 | |                     "{}",
[INFO] [stdout]  99 | |                     arg_err.display_with_arg(arg_string, value.unwrap_or_default())
[INFO] [stdout] 100 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/error.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/plan.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |               return Err(wm_err!("argument requires a value: {arg_string}"));
[INFO] [stdout]    |                          -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                       let mut image = wm_try!(decode(&file_plan.location, file_plan.format));
[INFO] [stdout]     |                                       ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/error.rs:41:17
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:313:24
[INFO] [stdout]     |
[INFO] [stdout] 313 |               return Err(wm_err!("no images defined")); // mimics imagemagick
[INFO] [stdout]     |                          ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/wm-convert.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/wm_convert_integration_tests.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 08s
[INFO] [stderr] crater-edition-check: wondermagick v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking wondermagick v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |               Err(error) => Err(wm_err!(
[INFO] [stdout]     |  _______________________________-
[INFO] [stdout] 181 | |                 "unable to open image '{}': {error}",
[INFO] [stdout] 182 | |                 input.to_string_lossy()
[INFO] [stdout] 183 | |             )),
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:228:34
[INFO] [stdout]     |
[INFO] [stdout] 228 |                       Some(msg) => wm_err!("invalid resize geometry: {msg}"),
[INFO] [stdout]     |                                    ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:229:29
[INFO] [stdout]     |
[INFO] [stdout] 229 |                       None => wm_err!("invalid resize geometry"),
[INFO] [stdout]     |                               ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:218:24
[INFO] [stdout]     |
[INFO] [stdout] 218 |               return Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()));
[INFO] [stdout]     |                          --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |               Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()))
[INFO] [stdout]     |                   --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:235:31
[INFO] [stdout]     |
[INFO] [stdout] 235 |                   Err(_) => Err(wm_err!("invalid crop geometry: {s:?}")),
[INFO] [stdout]     |                                 --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/args.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |               _ => Err(wm_err!("invalid argument sign `{}'", value)),
[INFO] [stdout]    |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:215:30
[INFO] [stdout]     |
[INFO] [stdout] 215 |                   .map_err(|_| wm_err!("unrecognized option `{}'", string_arg))?;
[INFO] [stdout]     |                                ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |           return Err(wm_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 198 | |             "missing output filename `{}'",
[INFO] [stdout] 199 | |             output_filename.to_string_lossy()
[INFO] [stdout] 200 | |         ));
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:188:20
[INFO] [stdout]     |
[INFO] [stdout] 188 |           return Err(wm_err!("No command-line arguments provided"));
[INFO] [stdout]     |                      --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:241:22
[INFO] [stdout]     |
[INFO] [stdout] 241 |           .map_err(|s| wm_err!("unrecognized option `{}'", s.to_string_lossy()))?;
[INFO] [stdout]     |                        -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |       let pixels = wm_try!(DynamicImage::from_decoder(decoder));
[INFO] [stdout]    |                    -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let mut decoder = wm_try!(reader.into_decoder());
[INFO] [stdout]    |                         ------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 |               reader = wm_try!(reader.with_guessed_format());
[INFO] [stdout]    |                        ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]    |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |               wm_try!(std::io::copy(&mut std::io::stdin(), &mut file));
[INFO] [stdout]    |               -------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |               let mut file = wm_try!(tempfile::tempfile());
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:79:30
[INFO] [stdout]    |
[INFO] [stdout] 79 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |               wm_try!(writer.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |               wm_try!(stdout.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |               wm_try!(std::io::copy(&mut file, &mut stdout));
[INFO] [stdout]     |               ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]     |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |               let mut file = wm_try!(writer.into_inner());
[INFO] [stdout]     |                              ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 |           _ => wm_try!(optimize_pixel_format(&image.pixels).write_to(&mut writer, format)),
[INFO] [stdout]     |                --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |           Location::Stdio => wm_try!(tempfile::tempfile()),
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |       Err(wm_err!(
[INFO] [stdout]     |  _________-
[INFO] [stdout] 151 | |         "no encode delegate for this image format `{}'",
[INFO] [stdout] 152 | |         extension.to_ascii_uppercase().display()
[INFO] [stdout] 153 | |     ))
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/avif.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/gif.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/jpeg.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 |               return Err(wm_err!("PNG quality cannot be negative"));
[INFO] [stdout]    |                          ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/tiff.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 |       .map_err(|e| wm_err!("WebP encoding failed: {e:?}"))?;
[INFO] [stdout]    |                    -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |       wm_try!(writer.write_all(&webp));
[INFO] [stdout]    |       -------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 43 | |                 "not enough channels in colorspace {:?} to combine {} images",
[INFO] [stdout] 44 | |                 color,
[INFO] [stdout] 45 | |                 images.len()
[INFO] [stdout] 46 | |             ));
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |           return Err(wm_err!("no images found for operation combine"));
[INFO] [stdout]    |                      ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 72 | |                 "unsupported color type {:?} for operation combine",
[INFO] [stdout] 73 | |                 color
[INFO] [stdout] 74 | |             ))
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/grayscale.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |           _ => Err(wm_err!(
[INFO] [stdout]    |  __________________-
[INFO] [stdout] 15 | |             "grayscale method not implemented. Rec709Luma is the only supported method."
[INFO] [stdout] 16 | |         )),
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:49:31
[INFO] [stdout]    |
[INFO] [stdout] 49 |               Token::Newline => wm_try!(write!(writer, "\n")),
[INFO] [stdout]    |                                 ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 |               Token::Literal(text) => wm_try!(write!(writer, "{}", text)),
[INFO] [stdout]    |                                       ----------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                   wm_try!(write!(writer, "{}", image.pixels.width()));
[INFO] [stdout]    |                   --------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |                   wm_try!(write!(writer, "{}", image.pixels.height()));
[INFO] [stdout]    |                   ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |                   wm_try!(write!(writer, "+{}", 0));
[INFO] [stdout]    |                   --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |                       wm_try!(write!(writer, "{}", format));
[INFO] [stdout]    |                       ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 | /                 wm_try!(write!(
[INFO] [stdout] 71 | |                     writer,
[INFO] [stdout] 72 | |                     "{}x{}",
[INFO] [stdout] 73 | |                     image.pixels.width(),
[INFO] [stdout] 74 | |                     image.pixels.height()
[INFO] [stdout] 75 | |                 ));
[INFO] [stdout]    | |__________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |                   wm_try!(write!(writer, "{}+0+0", dimensions));
[INFO] [stdout]    |                   --------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                   wm_try!(write!(writer, "{}", bits_per_channel));
[INFO] [stdout]    |                   ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                       wm_try!(write!(writer, "{}", colorspace));
[INFO] [stdout]    |                       ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/identify.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |           wm_try!(writer.write_all(filename.as_bytes()));
[INFO] [stdout]     |           ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |       wm_try!(resize_impl(image, width, height, Some(Filter::Point)));
[INFO] [stdout]    |       --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |               let resized = wm_try!(resize_plane8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]    |                             ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:97:27
[INFO] [stdout]     |
[INFO] [stdout]  97 |               let resized = wm_try!(resize_plane8_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout]  98 | |                 src.as_raw(),
[INFO] [stdout]  99 | |                 src_size,
[INFO] [stdout] 100 | |                 dst_size,
[INFO] [stdout] 101 | |                 alg
[INFO] [stdout] 102 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:106:27
[INFO] [stdout]     |
[INFO] [stdout] 106 |               let resized = wm_try!(resize_rgb8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |               let resized = wm_try!(resize_rgba8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:114:27
[INFO] [stdout]     |
[INFO] [stdout] 114 |               let resized = wm_try!(resize_plane16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:118:27
[INFO] [stdout]     |
[INFO] [stdout] 118 |               let resized = wm_try!(resize_plane16_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 119 | |                 src.as_raw(),
[INFO] [stdout] 120 | |                 src_size,
[INFO] [stdout] 121 | |                 dst_size,
[INFO] [stdout] 122 | |                 16,
[INFO] [stdout] 123 | |                 alg
[INFO] [stdout] 124 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |               let resized = wm_try!(resize_rgb16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |               let resized = wm_try!(resize_rgba16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:136:27
[INFO] [stdout]     |
[INFO] [stdout] 136 |               let resized = wm_try!(resize_rgb_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:140:27
[INFO] [stdout]     |
[INFO] [stdout] 140 |               let resized = wm_try!(resize_rgba_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:97:17
[INFO] [stdout]     |
[INFO] [stdout]  97 | /                 wm_err!(
[INFO] [stdout]  98 | |                     "{}",
[INFO] [stdout]  99 | |                     arg_err.display_with_arg(arg_string, value.unwrap_or_default())
[INFO] [stdout] 100 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/plan.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |               return Err(wm_err!("argument requires a value: {arg_string}"));
[INFO] [stdout]    |                          -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                       let mut image = wm_try!(decode(&file_plan.location, file_plan.format));
[INFO] [stdout]     |                                       ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:313:24
[INFO] [stdout]     |
[INFO] [stdout] 313 |               return Err(wm_err!("no images defined")); // mimics imagemagick
[INFO] [stdout]     |                          ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |               Err(error) => Err(wm_err!(
[INFO] [stdout]     |  _______________________________-
[INFO] [stdout] 181 | |                 "unable to open image '{}': {error}",
[INFO] [stdout] 182 | |                 input.to_string_lossy()
[INFO] [stdout] 183 | |             )),
[INFO] [stdout]     | |_____________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:228:34
[INFO] [stdout]     |
[INFO] [stdout] 228 |                       Some(msg) => wm_err!("invalid resize geometry: {msg}"),
[INFO] [stdout]     |                                    ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:229:29
[INFO] [stdout]     |
[INFO] [stdout] 229 |                       None => wm_err!("invalid resize geometry"),
[INFO] [stdout]     |                               ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:218:24
[INFO] [stdout]     |
[INFO] [stdout] 218 |               return Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()));
[INFO] [stdout]     |                          --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |               Err(wm_err!("invalid read modifier: {}", s.to_string_lossy()))
[INFO] [stdout]     |                   --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/arg_parsers/filename.rs:235:31
[INFO] [stdout]     |
[INFO] [stdout] 235 |                   Err(_) => Err(wm_err!("invalid crop geometry: {s:?}")),
[INFO] [stdout]     |                                 --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `wondermagick` (lib) due to 65 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/args.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |               _ => Err(wm_err!("invalid argument sign `{}'", value)),
[INFO] [stdout]    |                        -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:215:30
[INFO] [stdout]     |
[INFO] [stdout] 215 |                   .map_err(|_| wm_err!("unrecognized option `{}'", string_arg))?;
[INFO] [stdout]     |                                ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:197:20
[INFO] [stdout]     |
[INFO] [stdout] 197 |           return Err(wm_err!(
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 198 | |             "missing output filename `{}'",
[INFO] [stdout] 199 | |             output_filename.to_string_lossy()
[INFO] [stdout] 200 | |         ));
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:188:20
[INFO] [stdout]     |
[INFO] [stdout] 188 |           return Err(wm_err!("No command-line arguments provided"));
[INFO] [stdout]     |                      --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/args.rs:241:22
[INFO] [stdout]     |
[INFO] [stdout] 241 |           .map_err(|s| wm_err!("unrecognized option `{}'", s.to_string_lossy()))?;
[INFO] [stdout]     |                        -------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 |       let pixels = wm_try!(DynamicImage::from_decoder(decoder));
[INFO] [stdout]    |                    -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let mut decoder = wm_try!(reader.into_decoder());
[INFO] [stdout]    |                         ------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 |               reader = wm_try!(reader.with_guessed_format());
[INFO] [stdout]    |                        ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]    |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |               wm_try!(std::io::copy(&mut std::io::stdin(), &mut file));
[INFO] [stdout]    |               -------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/decode.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |               let mut file = wm_try!(tempfile::tempfile());
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:79:30
[INFO] [stdout]    |
[INFO] [stdout] 79 |               .map_err(|error| wm_err!("unable to open image '{}': {error}", path.display()))?,
[INFO] [stdout]    |                                ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |               wm_try!(writer.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |               wm_try!(stdout.flush());
[INFO] [stdout]     |               ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |               wm_try!(std::io::copy(&mut file, &mut stdout));
[INFO] [stdout]     |               ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |               wm_try!(file.seek(std::io::SeekFrom::Start(0)));
[INFO] [stdout]     |               ----------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |               let mut file = wm_try!(writer.into_inner());
[INFO] [stdout]     |                              ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 |           _ => wm_try!(optimize_pixel_format(&image.pixels).write_to(&mut writer, format)),
[INFO] [stdout]     |                --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encode.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |           Location::Stdio => wm_try!(tempfile::tempfile()),
[INFO] [stdout]    |                              ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/encode.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |       Err(wm_err!(
[INFO] [stdout]     |  _________-
[INFO] [stdout] 151 | |         "no encode delegate for this image format `{}'",
[INFO] [stdout] 152 | |         extension.to_ascii_uppercase().display()
[INFO] [stdout] 153 | |     ))
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/avif.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/gif.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/jpeg.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       wm_try!(pixels_to_write.write_with_encoder(encoder));
[INFO] [stdout]    |       ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/png.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 |               return Err(wm_err!("PNG quality cannot be negative"));
[INFO] [stdout]    |                          ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/tiff.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |       wm_try!(image.pixels.write_with_encoder(encoder));
[INFO] [stdout]    |       ------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 |       .map_err(|e| wm_err!("WebP encoding failed: {e:?}"))?;
[INFO] [stdout]    |                    -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/encoders/webp.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |       wm_try!(writer.write_all(&webp));
[INFO] [stdout]    |       -------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 43 | |                 "not enough channels in colorspace {:?} to combine {} images",
[INFO] [stdout] 44 | |                 color,
[INFO] [stdout] 45 | |                 images.len()
[INFO] [stdout] 46 | |             ));
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |           return Err(wm_err!("no images found for operation combine"));
[INFO] [stdout]    |                      ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/combine.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |               return Err(wm_err!(
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 72 | |                 "unsupported color type {:?} for operation combine",
[INFO] [stdout] 73 | |                 color
[INFO] [stdout] 74 | |             ))
[INFO] [stdout]    | |_____________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/grayscale.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |           _ => Err(wm_err!(
[INFO] [stdout]    |  __________________-
[INFO] [stdout] 15 | |             "grayscale method not implemented. Rec709Luma is the only supported method."
[INFO] [stdout] 16 | |         )),
[INFO] [stdout]    | |_________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:49:31
[INFO] [stdout]    |
[INFO] [stdout] 49 |               Token::Newline => wm_try!(write!(writer, "\n")),
[INFO] [stdout]    |                                 ----------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 |               Token::Literal(text) => wm_try!(write!(writer, "{}", text)),
[INFO] [stdout]    |                                       ----------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                   wm_try!(write!(writer, "{}", image.pixels.width()));
[INFO] [stdout]    |                   --------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |                   wm_try!(write!(writer, "{}", image.pixels.height()));
[INFO] [stdout]    |                   ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |                   wm_try!(write!(writer, "+{}", 0));
[INFO] [stdout]    |                   --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:63:21
[INFO] [stdout]    |
[INFO] [stdout] 63 |                       wm_try!(write!(writer, "{}", format));
[INFO] [stdout]    |                       ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 | /                 wm_try!(write!(
[INFO] [stdout] 71 | |                     writer,
[INFO] [stdout] 72 | |                     "{}x{}",
[INFO] [stdout] 73 | |                     image.pixels.width(),
[INFO] [stdout] 74 | |                     image.pixels.height()
[INFO] [stdout] 75 | |                 ));
[INFO] [stdout]    | |__________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |                   wm_try!(write!(writer, "{}+0+0", dimensions));
[INFO] [stdout]    |                   --------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |                   wm_try!(write!(writer, "{}", bits_per_channel));
[INFO] [stdout]    |                   ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/identify.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                       wm_try!(write!(writer, "{}", colorspace));
[INFO] [stdout]    |                       ----------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/identify.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |           wm_try!(writer.write_all(filename.as_bytes()));
[INFO] [stdout]     |           ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |       wm_try!(resize_impl(image, width, height, Some(Filter::Point)));
[INFO] [stdout]    |       --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/operations/resize.rs:93:27
[INFO] [stdout]    |
[INFO] [stdout] 93 |               let resized = wm_try!(resize_plane8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]    |                             ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:97:27
[INFO] [stdout]     |
[INFO] [stdout]  97 |               let resized = wm_try!(resize_plane8_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout]  98 | |                 src.as_raw(),
[INFO] [stdout]  99 | |                 src_size,
[INFO] [stdout] 100 | |                 dst_size,
[INFO] [stdout] 101 | |                 alg
[INFO] [stdout] 102 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:106:27
[INFO] [stdout]     |
[INFO] [stdout] 106 |               let resized = wm_try!(resize_rgb8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |               let resized = wm_try!(resize_rgba8(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:114:27
[INFO] [stdout]     |
[INFO] [stdout] 114 |               let resized = wm_try!(resize_plane16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:118:27
[INFO] [stdout]     |
[INFO] [stdout] 118 |               let resized = wm_try!(resize_plane16_with_alpha(
[INFO] [stdout]     |  ___________________________-
[INFO] [stdout] 119 | |                 src.as_raw(),
[INFO] [stdout] 120 | |                 src_size,
[INFO] [stdout] 121 | |                 dst_size,
[INFO] [stdout] 122 | |                 16,
[INFO] [stdout] 123 | |                 alg
[INFO] [stdout] 124 | |             ));
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |               let resized = wm_try!(resize_rgb16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:132:27
[INFO] [stdout]     |
[INFO] [stdout] 132 |               let resized = wm_try!(resize_rgba16(src.as_raw(), src_size, dst_size, 16, alg));
[INFO] [stdout]     |                             ----------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:136:27
[INFO] [stdout]     |
[INFO] [stdout] 136 |               let resized = wm_try!(resize_rgb_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/operations/resize.rs:140:27
[INFO] [stdout]     |
[INFO] [stdout] 140 |               let resized = wm_try!(resize_rgba_f32(src.as_raw(), src_size, dst_size, alg));
[INFO] [stdout]     |                             --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:97:17
[INFO] [stdout]     |
[INFO] [stdout]  97 | /                 wm_err!(
[INFO] [stdout]  98 | |                     "{}",
[INFO] [stdout]  99 | |                     arg_err.display_with_arg(arg_string, value.unwrap_or_default())
[INFO] [stdout] 100 | |                 )
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> src/error.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | /             {
[INFO] [stdout] 34 | |                 fn f() {}
[INFO] [stdout] 35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout] 36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |                  |                                           |
[INFO] [stdout]    | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]    | |                  creates a temporary value which is freed while still in use
[INFO] [stdout] 42 | |             },
[INFO] [stdout]    | |_____________- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/plan.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |               return Err(wm_err!("argument requires a value: {arg_string}"));
[INFO] [stdout]    |                          -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                       let mut image = wm_try!(decode(&file_plan.location, file_plan.format));
[INFO] [stdout]     |                                       ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` which comes from the expansion of the macro `wm_try` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/error.rs:41:18
[INFO] [stdout]     |
[INFO] [stdout]  33 | /             {
[INFO] [stdout]  34 | |                 fn f() {}
[INFO] [stdout]  35 | |                 fn type_name_of<T>(_: T) -> &'static str {
[INFO] [stdout]  36 | |                     std::any::type_name::<T>()
[INFO] [stdout] ...   |
[INFO] [stdout]  41 | |                 &name.rsplit("::").nth(1).unwrap_or("unknown")
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                  |                                           |
[INFO] [stdout]     | |                  |                                           temporary value is freed at the end of this statement
[INFO] [stdout]     | |                  creates a temporary value which is freed while still in use
[INFO] [stdout]  42 | |             },
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/plan.rs:313:24
[INFO] [stdout]     |
[INFO] [stdout] 313 |               return Err(wm_err!("no images defined")); // mimics imagemagick
[INFO] [stdout]     |                          ---------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `wm_err` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `wondermagick` (lib test) due to 65 previous errors
[INFO] running `Command { std: "docker" "inspect" "d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4", kill_on_drop: false }`
[INFO] [stdout] d6107400b3848f7cc1ac30a17841d3cd46de4161b0084d492a130eb1bfe718b4
